#ifndef VOLEUR_H
#define VOLEUR_H

#include "Classe.h"
using namespace std;

/**
 * Cette classe implémente le clerc de l'univers AD&D.
 * @author Johan "Solo" Luisier
 */
class Voleur : public Classe
{
 private:
  static const vector<unsigned int> comp_base;
 protected:
  static const unsigned int nbr_comp, /**< Nombre de compétences disponibles */
    nbr_restric; /**<  Nombre de restritions disponibles */
  static const vector<ListComp> Comp; /**< Liste de restrictions @see ListCom */
  /**
   * Ensemble des prérequis sur les traits.
   */
  static const vector< Prerequis > Limites;
  /**
   * Ensembles des Races admises.
   */
  static const set< string > RacesAdmises;
  void calculNiveau();
  unsigned int calculeTAc0() const;
  void calculNivMag();
 public:
  Voleur(unsigned int xp, const vector< unsigned int >& trait, unsigned int& PP,
	 const string& race);
  Voleur(unsigned int xp, const vector< unsigned int >& trait,
	 const string& race);
  Voleur(const vector< unsigned int >& trait,  const bool& UI,
	 const string& race);
  Voleur(Classe *ptr);
  ~Voleur();
  void appliquerModif();
  void augmenterTalents(const bool& lvl_up = true);
  void getJS(unsigned int *tab) const;
  void getPrixAcces(map<string, unsigned int>*& Map) const;
  unsigned int getPourcent(const bool& lvlUp = true) const;
  string getScoreAdditionnel(const unsigned int& i) const;
};

#endif
